/*
 * @Author: 13177709051 3506463075@qq.com
 * @Date: 2024-10-17 20:18:20
 * @LastEditors: 13177709051 3506463075@qq.com
 * @LastEditTime: 2024-10-18 16:40:30
 * @FilePath: /linux11/text.c
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// 网络连接的分段：

// 网络通常由多个子网组成。路由器的作用是连接不同的网络，允许数据在这些网络之间传递。源主机和目标主机可能位于不同的子网或网络中，因此需要通过路由器进行数据转发。
// 路由选择：

// 路由器根据路由表决定如何转发数据包。路由表包含了网络中各种IP地址的路径信息。通过这些信息，路由器能够选择最优路径，将数据包发送到目标主机。
// 地址转换：

// 在一些情况下，路由器还负责进行地址转换（如NAT - 网络地址转换），将私有IP地址转换为公共IP地址，或者反之。这使得内网设备能够访问外部网络。
// 流量管理与安全：

// 路由器可以执行流量管理、访问控制和安全策略，确保网络的正常运行和安全性。例如，防火墙功能可以阻止未授权的访问。





// 标识目标主机：

// 目的IP地址是数据包的目标地址，指向网络中某个特定的主机或设备。通过目的IP，网络能够知道数据包应该送到哪里。
// 路由决策：

// 路由器根据目的IP地址来决定数据包的转发路径。每个路由器在接收到数据包时，会检查数据包中的目的IP，并在其路由表中查找相应的路径，以决定将数据包发送到哪个接口。
// 实现分组交换：

// 在分组交换网络中，数据被分成多个小包。每个数据包都包含目的IP地址，允许它们通过不同的路径到达目标主机。这种方式提高了网络的效率和可靠性。
// 网络层协议的核心：

// 在OSI模型中，目的IP是网络层（第三层）协议（如IP协议）的关键组成部分。它使得不同网络间的通信成为可能。



// 当数据到达目标主机之后，怎么转发给目标进程？这就要

// 在网络的背景下，在系统中，标识主机的唯一性。


// #include <arpa/inet.h>

// uint32_t htonl(uint32_t hostlong);
// uint16_t htons(uint16_t hostshort);
// uint32_t ntohl(uint32_t netlong);
// uint16_t ntohs(uint16_t netshort);



// C
// // 创建 socket 文件描述符 (TCP/UDP, 客户端 + 服务器)
// int socket(int domain, int type, int protocol);
// // 绑定端口号 (TCP/UDP, 服务器)
// int bind(int socket, const struct sockaddr *address,
// socklen_t address_len);
// // 开始监听 socket (TCP, 服务器)
// int listen(int socket, int backlog);
// // 接收请求 (TCP, 服务器)
// int accept(int socket, struct sockaddr* address,
// socklen_t* address_len);
// // 建立连接 (TCP, 客户端)
// int connect(int sockfd, const struct sockaddr *addr,
// socklen_t addrlen);